1. Field of the Invention
The present invention relates generally to a system, method and computer program product for controlling access to information, and more particularly to providing unified authentication services in an Application Service Provider (ASP) setting to a registered end-user of one or more online (or web) applications.
The present invention also relates generally to a system, method and computer program product for allowing access to information, and more particularly to the enrollment and authentication of communication protocol-enabled clients for access to information, particularly confidential information, via a communication medium.
2. Background Art
The importance to the modern economy of rapid information access and exchange cannot be overstated. This explains the exponentially increasing popularity of the Internet, intranets, the wireless exchange of information, and so forth. The Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety of information electronically. The Internet today works especially well with the rapid access and exchange of public or non-confidential information.
One method of accessing information on the Internet is known as the World Wide Web (www, or the “web”). The web is a distributed, hypermedia system and functions as a client-server based information presentation system. The web supports documents that are formatted in a language called HyperText Markup Language (HTML). HTML documents support links to other documents, as well as graphics, audio, video files, and so forth. In addition, HTML controls how web pages are formatted and displayed. Computer users can access a web (or HTML) page using general-purpose computers, referred to as “clients,” by specifying the uniform resource locator (URL) of the page. FIG. 1 is a network block diagram showing a plurality of clients and servers connected to the Internet.
The Internet's popularity can be contributed in part to tools or protocols that have been developed to allow any user to take advantage of what the Internet has to offer. These include, but are not limited to, web browsers, HTTP, S-HTTP, cookies and SSL. Each of these are discussed in more detail below.
A web browser is a software application that makes it easy for users to locate and display web pages. Examples of web browsers include Netscape Navigator and Microsoft's Internet Explorer. A web browser is one example of a communication protocol-enabled client, as described herein. Other examples of a communication protocol-enabled client may include, but is not limited to, a TCP/IP client and a wireless client.
A common protocol used by the web is the HyperText Transfer Protocol (HTTP). HTTP defines how messages are formatted and transmitted, and what actions web servers and browsers should take in response to various commands. For example, when a user enters a URL in his or her browser, this actually sends an HTTP command to the web server directing it to fetch and transmit the requested web page.
HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it or after it. This is one reason why it is difficult to implement web sites that react intelligently to user input. This feature of HTTP has been addressed in a number of new technologies that compliment HTTP, including ActiveX, Java, JavaScript and cookies.
A cookie, for example, is a message given to a web browser by a web server. Cookies are a general mechanism which server side connections can use to both store and retrieve information on the client side of the connection. This addition of a simple, persistent, client-side state significantly extends the capabilities of web-based client/server applications.
A server, when returning an HTTP object to a user, may also send a piece of state information which the user will store. Included in that state object is a description of the range of URLs for which that state is valid. Any future HTTP requests made by the user which fall in that range will include a transmittal of the current value of the state object from the user back to the server. The state object is a cookie. This simple mechanism provides a powerful tool which enables a host of new types of applications to be written for web-based environments. Shopping applications can now store information about the currently selected user items, for-fee services can send back registration information and free the user from retyping a username (or user ID) on the next connection, sites can store per-user preferences on the user computer and have the user supply those preferences every time a connection is made to that site, and so forth.
Another common protocol used on the web is the Secure Sockets Layer (SSL) protocol. SSL is a protocol used for transmitting private documents via the Internet. SSL works by using a private session key that is known only to the web browser for that particular session. The session key changes for each session. The session key is used to encrypt data that is transferred over the SSL connection. Many web sites use the SSL protocol to obtain confidential user information, such as credit card numbers.
Another protocol for transmitting data securely over the web is Secure HTTP (S-HTTP). Whereas SSL creates a secure connection between a client and a server over which any amount of data can be sent securely, S-HTTP is designed to transmit individual messages securely. SSL and S-HTTP, therefore, can be seen as complementary rather than competing technologies.
As stated above, the importance to the modern economy of rapid information access and exchange cannot be overstated. The popularity of the Internet has been enhanced through web browsers and the various protocols mentioned above. (The popularity of intranets and wireless communication has also been enhanced through protocols specific to each.) The rapid exchange of non-confidential information via the Internet has served users well. However, there are some problems. One problem is the protection of confidential information via the Internet. Another problem is satisfying the comfort level in individual users that their confidential information via the Internet remains confidential when they subscribe to and use online (or web) applications.
The importance of satisfying the comfort level of users increases as the applications or services provided to users via the Internet necessitates the access or exchange of confidential user information. Examples of such applications or services include business-to-business and business-consumer-e-commerce transactions, online applications such as banking, stock-trading, shopping, personalized content web sites, and so forth. To avoid providing confidential information to the wrong user, the user (or communication protocol-enabled client such as a web browser) must be authenticated before the user accesses a web application. While the ease of information access and exchange is attractive to all users, most users are also concerned with the security of their confidential information accessible via the Internet, an intranet, a wireless network, and so forth.
So as to not offset the increase in the popularity of the Internet for information access and exchange, an Internet provider of information needs to balance adequate confidential information protection with the ease of information access and exchange over the Internet. In addition, registered users of web applications should have some control over the level of protection provided to their accounts managed by web applications to ensure adequate user comfort levels are achieved. Also, the user should only have to enroll once (i.e., provide his or her credentials) and then have these credentials reused for authentication to all of the user's accounts.